package com.xiyuan.smartutils.filters;

import java.io.IOException;

/**
 * 通用过滤器
 * 1.设置过滤匹配对象
 * 2.访问时传入对象和该匹配的进行比较
 *
 * @version v1.0.0 @author lgz 2017-7-14 新建与整理
 */

@FunctionalInterface
public interface Filter<T> {
    /**
     * 访问时匹配，=true表示通过，=false表示过滤
     *
     * @param src 要匹配的对象
     * @return =true表示通过，=false表示过滤
     */
    public boolean accept(T src);
    
    @FunctionalInterface
    public static interface Filter1<T> {
        public boolean filter(T src);
    }
    
    @FunctionalInterface
    public static interface Filter2<T> {
        public boolean filter(T src, int idx);
    }
    
    @FunctionalInterface
    public static interface Filter3<T, C> {
        public boolean filter(T src, int idx, C c);
    }
}
